/**
 * 这个文件适配的gcov版本是
 * 15.1
 */
#pragma once

#include <string>
#include <memory>
#include <unordered_map>
#include <functional>
#include <set>
#include <algorithm>

#include "GcovManager.hpp"

namespace gcov
{
    using XmlMapSharedPtr = std::shared_ptr<XmlMap>;

    class Gcov_15_0 : public IGcov
    {
    private:
        XmlMapSharedPtr m_xmlMap;

        std::string demangle(std::string &mangledName);

    public:
        Gcov_15_0() : m_xmlMap(std::make_shared<gcov::XmlMap>()) {};
        virtual ~Gcov_15_0() {}
        virtual std::shared_ptr<wxlsx::ExcelUtInfoList> readXmlGcov(std::string xmlFilePath, std::string gcovFilePat) override;
    };
} // namespace gcov
